package com.probiz.estore.sales.service;

import java.util.List;

import com.probiz.estore.common.model.product.Product;


public interface EvalRecommendationManager 
{
	/**
	 * 手动+自动评估 根据[推荐类型Id][源Id]获得特定范围的推荐产品(不能重复) 
	 * @param recommendedTypeName 推荐类型名称
	 * @param sourceKind 源类型
	 * @param sourceId 源id
	 * @param firstResult 开始
	 * @param maxResults 最大数量
	 * @return 商品列表
	 */
	public List<Product> getProductsByRecommendedTypeNameBySourceId(final String recommendedTypeName, final int sourceKind, final Integer sourceId,final int firstResult, final int maxResults);
	
	/**
	 * 手动+自动评估 根据[推荐类型Id][源Id的list]获得特定范围的推荐产品(不能重复) 
	 * @param recommendedTypeName 推荐类型名称
	 * @param sourceKind 源类型
	 * @param sourceIds 源id数组
	 * @param firstResult 开始 
	 * @param maxResults 最大数量
	 * @return 商品列表
	 */
	public List<Product> getProductsByRecommendedTypeNameBySourceIdList(final String recommendedTypeName,final int sourceKind, final List<Integer> sourceIds,	final int firstResult, final int maxResults);
	
	/**
	 * 将输入参数的两个list合并成一个大小为maxResult的新list
	 * 
	 * @param list1
	 * @param list2
	 * @param maxResults
	 * @return List<Product>
	 */
	public List<Product> mergeList(List<Product> list1,	List<Product> list2, int maxResults);
}
